package abg.core.domain.db;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 绿添系统用户表
 */
@Data
@Table(value = "li_member")
public class LtMember implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Id(keyType = KeyType.None)
    public String id;


    //    @ApiModelProperty(value = "创建者", hidden = true)
    private String createBy;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @LastModifiedBy
    private String updateBy;

    @LastModifiedDate
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    private Boolean deleteFlag;


    //    @ApiModelProperty(value = "身份证号，默认为0")
    private String card;

    //    身份证号对应姓名
    private String cardName;

    //    身份证是否通过第三方实名校验；默认为0；0=未校验；1=已校验
    private String cardIsCheck;

    //    @ApiModelProperty(value = "绿添分销PID")
    private String pid;

    //    @ApiModelProperty(value = "分销省份ID")
    private String provinceId;

    //    @ApiModelProperty(value = "分销省份名称")
    private String provinceName;

    //    @ApiModelProperty(value = "总收入")
    private Double incomeTotal;

    //    @ApiModelProperty(value = "总提现")
    private Double withdrawalTotal;

    //    @ApiModelProperty(value = "用户用户名")
    private String username;

    //    @ApiModelProperty(value = "用户密码")
    private String password;

    //    @ApiModelProperty(value = "昵称")
    private String nickName;

    private Integer sex;

    //    用户生日
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;

    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    //最后访问日期
    private Date interviewDate;

    //    @ApiModelProperty(value = "用户地址ID")
    private String regionId;

    //    @ApiModelProperty(value = "用户地址")
    private String region;

    //    @ApiModelProperty(value = "手机号码", required = true)
//    @Sensitive(strategy = SensitiveStrategy.PHONE)
    private String mobile;

    //    @ApiModelProperty(value = "积分数量")
    private Long point;

    //    @ApiModelProperty(value = "积分总数量")
    private Long totalPoint;

    //    @ApiModelProperty(value = "用户头像")
    private String face;

    //    @ApiModelProperty(value = "用户状态")
    private Boolean disabled;

    //    @ApiModelProperty(value = "是否开通店铺")
    private Boolean haveStore;

    //    @ApiModelProperty(value = "店铺ID")
    private String storeId;

    //    @ApiModelProperty(value = "客户端")
    private String clientEnum;

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    //    @ApiModelProperty(value = "最后一次登录时间")
    private Date lastLoginDate;

    //    @ApiModelProperty(value = "用户等级ID")
    private String gradeId;

    //    @ApiModelProperty(value = "经验值数量")
    private Long experience;

    /**
     * 邀请码
     */
    private String shareCode;

}
